#ifndef KMYIDEBUG_H
#define KMYIDEBUG_H

#include <string>
using namespace std;
#include "KmyTypedef.h"

class KmyIDebug
{
public:
    KmyIDebug();

    static void initialize(KmyIDebug* debuger);
    static KmyIDebug* getInstance();

    virtual void print(const char* str) = 0;

    KmyIDebug &operator <<(char t);
    KmyIDebug &operator <<(bool t);
    KmyIDebug &operator <<(int t);
    KmyIDebug &operator <<(const string t);
    KmyIDebug &operator <<(const char *t);
    KmyIDebug &operator <<(float t);

    char endl();

private:
    static KmyIDebug* instance;
};

#endif // KMYIDEBUG_H
